package route

import (
	"net/http"

	"github.com/gorilla/mux"

	"gohub/pkg/logger"
)

var route *mux.Router

// SetRoute 设置路由实例，以供 Name2URL 等函数使用
func SetRoute(r *mux.Router) {
	route = r

	// 静态资源
	// r.PathPrefix("/css/").Handler(http.FileServer(http.Dir("./public")))
	// r.PathPrefix("/js/").Handler(http.FileServer(http.Dir("./public")))
}

// RouteName2URL 通过路由名称来获取 URL
func Name2URL(routeName string, pairs ...string) string {
	url, err := route.Get(routeName).URL(pairs...)
	if err != nil {
		logger.LogError(err)
		return ""
	}

	// return config.GetString("app.url") + url.String()
	return url.String()
}

// GetRouteVariable 获取 URI 路由参数
func GetRouteVariable(parameterName string, r *http.Request) string {
	vars := mux.Vars(r)
	return vars[parameterName]
}
